iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
Software Development

30天快速打造Python資料結構&演算法邏輯刷爆LeetCode系列 第 22

DAY 22「最長無重覆子串 (Longest Substring Without Repeating Characters)」Leetcode題目的Python程式碼撰寫~

  • 分享至 

  • xImage
  •  
  • 最長無重覆子串 (Longest Substring Without Repeating Characters)
    題目描述:給定一個字符串,請你找出其中不含有重覆字符的最長子串的長度。
def lengthOfLongestSubstring(s):
    max_length = 0
    start = 0
    char_map = {}
    for i, char in enumerate(s):
        if char in char_map and char_map[char] >= start:
            start = char_map[char] + 1
        char_map[char] = i
        max_length = max(max_length, i - start + 1)
    return max_length
  • 盛最多水的容器 (Container With Most Water)
    題目描述:給你 n 個非負整數 a1,a2,...,an,每個數代表了坐標中的一個點 (i, ai) 。在坐標內畫 n 條垂直線,垂直線 i 的兩個端點分別為 (i, ai) 和 (i, 0)。找出其中的兩條線,使得與 x 軸共同構成的容器可以容納最多的水。
def maxArea(height):
    max_area = 0
    left = 0
    right = len(height) - 1
    while left < right:
        max_area = max(max_area, min(height[left], height[right]) * (right - left))
        if height[left] < height[right]:
            left += 1
        else:
            right -= 1
    return max_area
  • 全排列 (Permutations)
    題目描述:給定一個沒有重覆數字的序列,返回其所有可能的全排列。
def permute(nums):
    def backtrack(first=0):
        if first == n:
            output.append(nums[:])
        for i in range(first, n):
            nums[first], nums[i] = nums[i], nums[first]
            backtrack(first + 1)
            nums[first], nums[i] = nums[i], nums[first]
    n = len(nums)
    output = []
    backtrack()
    return output
  • 合並區間 (Merge Intervals)
    題目描述:給出一個區間的集合,請合並所有重疊的區間。
def merge(intervals):
    intervals.sort(key=lambda x: x[0])
    merged = []
    for interval in intervals:
        if not merged or merged[-1][1] < interval[0]:
            merged.append(interval)
        else:
            merged[-1][1] = max(merged[-1][1], interval[1])
    return merged

上一篇
DAY 21 「Leetcode面試」必考題目的Python程式碼撰寫~
下一篇
DAY 23 「陣列 Leetcode」題目的Python程式碼撰寫~
系列文
30天快速打造Python資料結構&演算法邏輯刷爆LeetCode30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言